home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / amigae / mac2e_v31.lha / Mac2E / Sources / OptiMUI2E.e < prev    next >
Encoding:
Text File  |  1994-07-12  |  4.4 KB  |  185 lines

  1. OPT OSVERSION=37
  2.  
  3. /* Traitements des erreurs */
  4. ENUM    OUT_OF_MEMORY,ARGS_ERROR,IO_ERROR
  5.  
  6. RAISE    OUT_OF_MEMORY    IF New()=NIL,
  7.         ARGS_ERROR        IF ReadArgs()=NIL,
  8.         IO_ERROR        IF Open()=NIL
  9.  
  10. /**********************/
  11. /* Corps du programme */
  12. /**********************/
  13. PROC main() HANDLE
  14.     DEF rdargs,arguments:PTR TO LONG,version
  15.     DEF fichier,adr_fichier,long_fichier,fin_fichier,pointeur_car
  16.     DEF deb_phrase
  17.  
  18.     Vprintf('          \c1;33;40\cOptiMUI2E\c0;31;40\c v1.1\n',[$9B,$6D,$9B,$6D])
  19.     PutStr('Copyright © 1993, Lionel Vintenat\n')
  20.     Vprintf('\c1;32;40\c---------------------------------\c0;31;40\c\n',[$9B,$6D,$9B,$6D])
  21.     version:='$VER: OptiMUI2E 1.1 (10.3.94)'
  22.  
  23.     arguments:=[NIL,NIL]
  24.     rdargs:=ReadArgs('FROM/A,TO/A',arguments,NIL)
  25.  
  26.     fichier:=Open(arguments[0],OLDFILE)
  27.     long_fichier:=FileLength(arguments[0])
  28.     adr_fichier:=New(long_fichier)
  29.     fin_fichier:=adr_fichier+long_fichier
  30.     deb_phrase:=adr_fichier
  31.     Read(fichier,adr_fichier,long_fichier)
  32.     Close(fichier)
  33.  
  34.     fichier:=Open(arguments[1],NEWFILE)
  35.  
  36.         /* cherche la chaine "', [TAG_IGNORE, 0" */
  37.     MOVE.L    adr_fichier,A0
  38.     MOVE.L    fin_fichier,A1
  39.     while0:
  40.         CMPA.L    A1,A0                /* pointeur_car=fin_fichier ? */
  41.         BEQ.W    fin_while1
  42.         MOVE.B    (A0)+,D0
  43.     while1:
  44.         CMP.B    #"'",D0             /* Char(pointeur_car)="'" ? */
  45.         BNE.B    while0
  46.  
  47.         CMPA.L    A1,A0                /* pointeur_car=fin_fichier ? */
  48.         BEQ.W    fin_while1
  49.         MOVE.B    (A0)+,D0
  50.         CMP.B    #",",D0             /* Char(pointeur_car)="," ? */
  51.         BNE.B    while1
  52.  
  53.         CMPA.L    A1,A0                /* pointeur_car=fin_fichier ? */
  54.         BEQ.W    fin_while1
  55.         MOVE.B    (A0)+,D0
  56.         CMP.B    #" ",D0             /* Char(pointeur_car)=" " ? */
  57.         BNE.B    while1
  58.  
  59.         CMPA.L    A1,A0                /* pointeur_car=fin_fichier ? */
  60.         BEQ.W    fin_while1
  61.         MOVE.B    (A0)+,D0
  62.         CMP.B    #"[",D0             /* Char(pointeur_car)="[" ? */
  63.         BNE.B    while1
  64.  
  65.         CMPA.L    A1,A0                /* pointeur_car=fin_fichier ? */
  66.         BEQ.W    fin_while1
  67.         MOVE.B    (A0)+,D0
  68.         CMP.B    #"T",D0             /* Char(pointeur_car)="T" ? */
  69.         BNE.B    while1
  70.  
  71.         CMPA.L    A1,A0                /* pointeur_car=fin_fichier ? */
  72.         BEQ.W    fin_while1
  73.         MOVE.B    (A0)+,D0
  74.         CMP.B    #"A",D0             /* Char(pointeur_car)="A" ? */
  75.         BNE.B    while1
  76.  
  77.         CMPA.L    A1,A0                /* pointeur_car=fin_fichier ? */
  78.         BEQ.W    fin_while1
  79.         MOVE.B    (A0)+,D0
  80.         CMP.B    #"G",D0             /* Char(pointeur_car)="G" ? */
  81.         BNE.B    while1
  82.  
  83.         CMPA.L    A1,A0                /* pointeur_car=fin_fichier ? */
  84.         BEQ.W    fin_while1
  85.         MOVE.B    (A0)+,D0
  86.         CMP.B    #"_",D0             /* Char(pointeur_car)="_" ? */
  87.         BNE.B    while1
  88.  
  89.         CMPA.L    A1,A0                /* pointeur_car=fin_fichier ? */
  90.         BEQ.W    fin_while1
  91.         MOVE.B    (A0)+,D0
  92.         CMP.B    #"I",D0             /* Char(pointeur_car)="I" ? */
  93.         BNE.B    while1
  94.  
  95.         CMPA.L    A1,A0                /* pointeur_car=fin_fichier ? */
  96.         BEQ.W    fin_while1
  97.         MOVE.B    (A0)+,D0
  98.         CMP.B    #"G",D0             /* Char(pointeur_car)="G" ? */
  99.         BNE.W    while1
  100.  
  101.         CMPA.L    A1,A0                /* pointeur_car=fin_fichier ? */
  102.         BEQ.W    fin_while1
  103.         MOVE.B    (A0)+,D0
  104.         CMP.B    #"N",D0             /* Char(pointeur_car)="N" ? */
  105.         BNE.W    while1
  106.  
  107.         CMPA.L    A1,A0                /* pointeur_car=fin_fichier ? */
  108.         BEQ.W    fin_while1
  109.         MOVE.B    (A0)+,D0
  110.         CMP.B    #"O",D0             /* Char(pointeur_car)="O" ? */
  111.         BNE.W    while1
  112.  
  113.         CMPA.L    A1,A0                /* pointeur_car=fin_fichier ? */
  114.         BEQ.W    fin_while1
  115.         MOVE.B    (A0)+,D0
  116.         CMP.B    #"R",D0             /* Char(pointeur_car)="R" ? */
  117.         BNE.W    while1
  118.  
  119.         CMPA.L    A1,A0                /* pointeur_car=fin_fichier ? */
  120.         BEQ.W    fin_while1
  121.         MOVE.B    (A0)+,D0
  122.         CMP.B    #"E",D0             /* Char(pointeur_car)="E" ? */
  123.         BNE.W    while1
  124.  
  125.         CMPA.L    A1,A0                /* pointeur_car=fin_fichier ? */
  126.         BEQ.W    fin_while1
  127.         MOVE.B    (A0)+,D0
  128.         CMP.B    #",",D0             /* Char(pointeur_car)="," ? */
  129.         BNE.W    while1
  130.  
  131.         CMPA.L    A1,A0                /* pointeur_car=fin_fichier ? */
  132.         BEQ.W    fin_while1
  133.         MOVE.B    (A0)+,D0
  134.         CMP.B    #" ",D0             /* Char(pointeur_car)=" " ? */
  135.         BNE.W    while1
  136.  
  137.         CMPA.L    A1,A0                /* pointeur_car=fin_fichier ? */
  138.         BEQ.B    fin_while1
  139.         MOVE.B    (A0)+,D0
  140.         CMP.B    #"0",D0             /* Char(pointeur_car)="0" ? */
  141.         BNE.W    while1
  142.  
  143.         MOVE.L    A0,pointeur_car
  144.         Write(fichier,deb_phrase,pointeur_car-deb_phrase-13)
  145.         MOVE.L    pointeur_car,A0
  146.         MOVE.L    fin_fichier,A1
  147.  
  148.         while2:
  149.             CMPA.L    A1,A0
  150.             BEQ.B    fin_while1
  151.             MOVE.B    (A0)+,D0
  152.             CMP.B    #",",D0
  153.             BEQ.B    while2
  154.             CMP.B    #" ",D0
  155.             BEQ.B    while2
  156.             CMP.B    #9,D0
  157.             BEQ.B    while2
  158.             CMP.B    #10,D0
  159.             BEQ.B    while2
  160.             fin_while2:
  161.         SUBQ.L    #1,A0
  162.         MOVE.L    A0,deb_phrase
  163.         BRA.W    while1
  164.     fin_while1:
  165.     MOVE.L    A0,pointeur_car
  166.     Write(fichier,deb_phrase,pointeur_car-deb_phrase)
  167.  
  168.     Close(fichier)
  169.     FreeArgs(rdargs)
  170. EXCEPT
  171.     SELECT exception
  172.         CASE ARGS_ERROR
  173.             PrintFault(IoErr(),NIL)
  174.         CASE OUT_OF_MEMORY
  175.             PutStr('Out of memory !\n')
  176.         CASE IO_ERROR
  177.             PrintFault(IoErr(),NIL)
  178.     ENDSELECT
  179.  
  180.     IF rdargs THEN    FreeArgs(rdargs)
  181.  
  182.     CleanUp(100)
  183. ENDPROC
  184.  
  185.